home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 February: Tool Chest / Dev.CD Feb 94.toast / Tool Chest / Development Platforms / MPW Related / MPW Interfaces / CIncludes / IntlResources.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-17  |  9.8 KB  |  322 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        IntlResources.h
  3.  
  4.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Version:    System 7.1 for ETO #11
  8.     Created:    Tuesday, March 30, 1993 18:00
  9.  
  10. */
  11.  
  12. #ifndef __INTLRESOURCES__
  13. #define __INTLRESOURCES__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. #endif
  18.  
  19. enum {
  20.  
  21. /* Bits in the itlcFlags byte.
  22.  */
  23.  itlcShowIcon = 7,                    /*Show icon even if only one script*/
  24.  itlcDualCaret = 6,                    /*Use dual caret for mixed direction text*/
  25.  
  26. /* Bits in the itlcSysFlags word.
  27.  */
  28.  itlcSysDirection = 15,                /*System direction - left to right/right to left*/
  29.  
  30. /* the NumberParts indices */
  31.  tokLeftQuote = 1,
  32.  tokRightQuote = 2,
  33.  tokLeadPlacer = 3,
  34.  tokLeader = 4,
  35.  tokNonLeader = 5,
  36.  tokZeroLead = 6,
  37.  tokPercent = 7,
  38.  tokPlusSign = 8,
  39.  tokMinusSign = 9,
  40.  tokThousands = 10,
  41.  tokSeparator = 12,                    /*11 is a reserved field*/
  42.  tokEscape = 13,
  43.  tokDecPoint = 14,
  44.  tokEPlus = 15,
  45.  tokEMinus = 16,
  46.  tokMaxSymbols = 31,
  47.  
  48.  curNumberPartsVersion = 1            /*current version of NumberParts record*/
  49. };
  50.  
  51. /* These were moved from Packages.h */
  52. enum {
  53.  currSymLead = 16,
  54.  currNegSym = 32,
  55.  currTrailingZ = 64,
  56.  currLeadingZ = 128
  57. };
  58.  
  59. enum {mdy,dmy,ymd,myd,dym,ydm};
  60. typedef unsigned char DateOrders;
  61.  
  62. enum {
  63.  zeroCycle = 1,                    /*0:00 AM/PM format*/
  64.  longDay = 0,                    /*day of the month*/
  65.  longWeek = 1,                    /*day of the week*/
  66.  longMonth = 2,                    /*month of the year*/
  67.  longYear = 3,                    /*year*/
  68.  supDay = 1,                    /*suppress day of month*/
  69.  supWeek = 2,                    /*suppress day of week*/
  70.  supMonth = 4,                    /*suppress month*/
  71.  supYear = 8,                    /*suppress year*/
  72.  dayLdingZ = 32,
  73.  mntLdingZ = 64,
  74.  century = 128,
  75.  secLeadingZ = 32,
  76.  minLeadingZ = 64,
  77.  hrLeadingZ = 128
  78. };
  79.  
  80.  
  81. struct OffPair {
  82.  short offFirst;
  83.  short offSecond;
  84. };
  85.  
  86. typedef struct OffPair OffPair;
  87.  
  88.  
  89. typedef OffPair OffsetTable[3];
  90.  
  91.  
  92. struct Intl0Rec {
  93.  char decimalPt;                /*decimal point character*/
  94.  char thousSep;                    /*thousands separator character*/
  95.  char listSep;                    /*list separator character*/
  96.  char currSym1;                    /*currency symbol*/
  97.  char currSym2;
  98.  char currSym3;
  99.  unsigned char currFmt;            /*currency format flags*/
  100.  unsigned char dateOrder;        /*order of short date elements: mdy, dmy, etc.*/
  101.  unsigned char shrtDateFmt;        /*format flags for each short date element*/
  102.  char dateSep;                    /*date separator character*/
  103.  unsigned char timeCycle;        /*specifies time cycle: 0..23, 1..12, or 0..11*/
  104.  unsigned char timeFmt;            /*format flags for each time element*/
  105.  char mornStr[4];                /*trailing string for AM if 12-hour cycle*/
  106.  char eveStr[4];                /*trailing string for PM if 12-hour cycle*/
  107.  char timeSep;                    /*time separator character*/
  108.  char time1Suff;                /*trailing string for AM if 24-hour cycle*/
  109.  char time2Suff;
  110.  char time3Suff;
  111.  char time4Suff;
  112.  char time5Suff;                /*trailing string for PM if 24-hour cycle*/
  113.  char time6Suff;
  114.  char time7Suff;
  115.  char time8Suff;
  116.  unsigned char metricSys;        /*255 if metric, 0 if inches etc.*/
  117.  short intl0Vers;                /*region code (hi byte) and version (lo byte)*/
  118. };
  119.  
  120. typedef struct Intl0Rec Intl0Rec;
  121. typedef Intl0Rec *Intl0Ptr, **Intl0Hndl;
  122.  
  123. struct Intl1Rec {
  124.  Str15 days[7];                    /*day names*/
  125.  Str15 months[12];                /*month names*/
  126.  unsigned char suppressDay;        /*255 for no day, or flags to suppress any element*/
  127.  unsigned char lngDateFmt;        /*order of long date elements*/
  128.  unsigned char dayLeading0;        /*255 for leading 0 in day number*/
  129.  unsigned char abbrLen;            /*length for abbreviating names*/
  130.  char st0[4];                    /*separator strings for long date format*/
  131.  char st1[4];
  132.  char st2[4];
  133.  char st3[4];
  134.  char st4[4];
  135.  short intl1Vers;                /*region code (hi byte) and version (lo byte)*/
  136.  short localRtn[1];                /*now a flag for opt extension*/
  137. };
  138.  
  139. typedef struct Intl1Rec Intl1Rec;
  140. typedef Intl1Rec *Intl1Ptr, **Intl1Hndl;
  141.  
  142. struct UntokenTable {
  143.  short len;
  144.  short lastToken;
  145.  short index[256];                    /*index table; last = lastToken*/
  146. };
  147.  
  148. typedef struct UntokenTable UntokenTable;
  149. typedef UntokenTable *UntokenTablePtr, **UntokenTableHandle;
  150.  
  151.  
  152. union WideChar {
  153.  char a[2];                            /*0 is the high order character*/
  154.  short b;
  155. };
  156.  
  157. typedef union WideChar WideChar;
  158.  
  159. struct WideCharArr {
  160.  short size;
  161.  WideChar data[10];
  162. };
  163.  
  164. typedef struct WideCharArr WideCharArr;
  165.  
  166.  
  167. struct NumberParts {
  168.  short version;
  169.  WideChar data[31];                    /*index by [tokLeftQuote..tokMaxSymbols]*/
  170.  WideCharArr pePlus;
  171.  WideCharArr peMinus;
  172.  WideCharArr peMinusPlus;
  173.  WideCharArr altNumTable;
  174.  char reserved[20];
  175. };
  176.  
  177. typedef struct NumberParts NumberParts;
  178. typedef NumberParts *NumberPartsPtr;
  179.  
  180.  
  181.  
  182. struct Itl4Rec {
  183.  short flags;                        /*reserved*/
  184.  long resourceType;                    /*contains 'itl4'*/
  185.  short resourceNum;                    /*resource ID*/
  186.  short version;                        /*version number*/
  187.  long resHeader1;                    /*reserved*/
  188.  long resHeader2;                    /*reserved*/
  189.  short numTables;                    /*number of tables, one-based*/
  190.  long mapOffset;                    /*offset to table that maps byte to token*/
  191.  long strOffset;                    /*offset to routine that copies canonical string*/
  192.  long fetchOffset;                    /*offset to routine that gets next byte of character*/
  193.  long unTokenOffset;                /*offset to table that maps token to canonical string*/
  194.  long defPartsOffset;                /*offset to default number parts table*/
  195.  long resOffset6;                    /*reserved*/
  196.  long resOffset7;                    /*reserved*/
  197.  long resOffset8;                    /*reserved*/
  198. };
  199.  
  200. typedef struct Itl4Rec Itl4Rec;
  201. typedef Itl4Rec *Itl4Ptr, **Itl4Handle;
  202.  
  203. /* New NItl4Rec for System 7.0: */
  204. struct NItl4Rec {
  205.  short flags;                        /*reserved*/
  206.  long resourceType;                    /*contains 'itl4'*/
  207.  short resourceNum;                    /*resource ID*/
  208.  short version;                        /*version number*/
  209.  short format;                        /*format code*/
  210.  short resHeader;                    /*reserved*/
  211.  long resHeader2;                    /*reserved*/
  212.  short numTables;                    /*number of tables, one-based*/
  213.  long mapOffset;                    /*offset to table that maps byte to token*/
  214.  long strOffset;                    /*offset to routine that copies canonical string*/
  215.  long fetchOffset;                    /*offset to routine that gets next byte of character*/
  216.  long unTokenOffset;                /*offset to table that maps token to canonical string*/
  217.  long defPartsOffset;                /*offset to default number parts table*/
  218.  long whtSpListOffset;                /*offset to white space code list*/
  219.  long resOffset7;                    /*reserved*/
  220.  long resOffset8;                    /*reserved*/
  221.  short resLength1;                    /*reserved*/
  222.  short resLength2;                    /*reserved*/
  223.  short resLength3;                    /*reserved*/
  224.  short unTokenLength;                /*length of untoken table*/
  225.  short defPartsLength;                /*length of default number parts table*/
  226.  short whtSpListLength;                /*length of white space code list*/
  227.  short resLength7;                    /*reserved*/
  228.  short resLength8;                    /*reserved*/
  229. };
  230.  
  231. typedef struct NItl4Rec NItl4Rec;
  232. typedef NItl4Rec *NItl4Ptr, **NItl4Handle;
  233.  
  234. struct TableDirectoryRecord {
  235.  OSType tableSignature;                /*4 byte long table name */
  236.  unsigned long reserved;            /*Reserved for internal use */
  237.  unsigned long tableStartOffset;    /*Table start offset in byte*/
  238.  unsigned long tableSize;            /*Table size in byte*/
  239.  };
  240.  
  241. typedef struct TableDirectoryRecord TableDirectoryRecord;
  242.  
  243. struct Itl5Record {
  244.  Fixed versionNumber;                        /*itl5 resource version number */
  245.  unsigned short numberOfTables;                /*Number of tables it contains */
  246.  unsigned short reserved[3];                /*Reserved for internal use */
  247.  TableDirectoryRecord tableDirectory[1];    /*Table directory records */
  248.  };
  249.  
  250. typedef struct Itl5Record Itl5Record;
  251.  
  252. struct RuleBasedTrslRecord {
  253.  short sourceType;                    /*Transliterate target type for the LHS of the rule */
  254.  short targetType;                    /*Transliterate target type for the RHS of the rule */
  255.  short formatNumber;                /*Transliterate resource format number */
  256.  short propertyFlag;                /*Transliterate property flags */
  257.  short numberOfRules;                /*Number of rules following this field */
  258.  };
  259.  
  260. typedef struct RuleBasedTrslRecord RuleBasedTrslRecord;
  261.  
  262.  
  263.  
  264. struct ItlcRecord {
  265.  short itlcSystem;                    /*default system script*/
  266.  short itlcReserved;                /*reserved*/
  267.  char itlcFontForce;                /*default font force flag*/
  268.  char itlcIntlForce;                /*default intl force flag*/
  269.  char itlcOldKybd;                    /*MacPlus intl keybd flag*/
  270.  char itlcFlags;                    /*general flags*/
  271.  short itlcIconOffset;                /*keyboard icon offset; not used in 7.0*/
  272.  char itlcIconSide;                    /*keyboard icon side; not used in 7.0*/
  273.  char itlcIconRsvd;                    /*rsvd for other icon info*/
  274.  short itlcRegionCode;                /*preferred verXxx code*/
  275.  short itlcSysFlags;                /*flags for setting system globals*/        /*<40>*/
  276.  char itlcReserved4[32];            /*for future use*/                            /*<40>*/
  277. };
  278.  
  279. typedef struct ItlcRecord ItlcRecord;
  280.  
  281. struct ItlbRecord {
  282.  short itlbNumber;                    /*itl0 id number*/
  283.  short itlbDate;                    /*itl1 id number*/
  284.  short itlbSort;                    /*itl2 id number*/
  285.  short itlbFlags;                    /*Script flags*/
  286.  short itlbToken;                    /*itl4 id number*/
  287.  short itlbEncoding;                /*itl5 ID # (optional; char encoding)*/
  288.  short itlbLang;                    /*current language for script */
  289.  char itlbNumRep;                    /*number representation code*/
  290.  char itlbDateRep;                    /*date representation code */
  291.  short itlbKeys;                    /*KCHR id number*/
  292.  short itlbIcon;                    /*ID # of SICN or kcs#/kcs4/kcs8 suite.*/
  293. };
  294.  
  295. typedef struct ItlbRecord ItlbRecord;
  296.  
  297. /* New ItlbExtRecord structure for System 7.0 */
  298. struct ItlbExtRecord {
  299.  ItlbRecord base;                    /*un-extended ItlbRecord*/
  300.  long itlbLocalSize;                /*size of script's local record*/
  301.  short itlbMonoFond;                /*default monospace FOND ID*/
  302.  short itlbMonoSize;                /*default monospace font size*/
  303.  short itlbPrefFond;                /*preferred FOND ID*/
  304.  short itlbPrefSize;                /*preferred font size*/
  305.  short itlbSmallFond;                /*default small FOND ID*/
  306.  short itlbSmallSize;                /*default small font size*/
  307.  short itlbSysFond;                    /*default system FOND ID*/
  308.  short itlbSysSize;                    /*default system font size*/
  309.  short itlbAppFond;                    /*default application FOND ID*/
  310.  short itlbAppSize;                    /*default application font size*/
  311.  short itlbHelpFond;                /*default Help Mgr FOND ID*/
  312.  short itlbHelpSize;                /*default Help Mgr font size*/
  313.  Style itlbValidStyles;                /*set of valid styles for script*/
  314.  Style itlbAliasStyle;                /*style (set) to mark aliases*/
  315. };
  316.  
  317. typedef struct ItlbExtRecord ItlbExtRecord;
  318.  
  319.  
  320.  
  321. #endif
  322.